﻿<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../helpproject.xsl" ?>
<topic template="Default" lasteditedby="Geert" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../helpproject.xsd">
  <title translate="true">CameraService</title>
  <keywords>
    <keyword translate="true">CameraService</keyword>
    <keyword translate="true">ICameraService</keyword>
    <keyword translate="true">MVVM</keyword>
    <keyword translate="true">PhotoCamera</keyword>
    <keyword translate="true">Services</keyword>
  </keywords>
  <body>
    <header>
      <para styleclass="Heading1"><text styleclass="Heading1" translate="true">CameraService</text></para>
    </header>
    <para styleclass="Normal"><text styleclass="Normal" translate="true">The </text><link displaytype="text" defaultstyle="true" type="topiclink" href="T_Catel_MVVM_Services_ICameraService" styleclass="Normal" translate="true">ICameraService</link><text styleclass="Normal" translate="true"> allows a developer to use the PhotoCamera class in an MVVM manner.</text></para>
    <para styleclass="Notes"><text styleclass="Notes" translate="true">It is important that the service must be started and stopped to retrieve values</text></para>
    <para styleclass="Normal"><table styleclass="Default" rowcount="8" colcount="2">
      <tr style="vertical-align:top">
        <td style="width:181px;">
          <para styleclass="Normal (list)"><text styleclass="Normal (list)" style="font-weight:bold;" translate="true">Feature</text></para>
        </td>
        <td style="width:82px;">
          <para styleclass="Normal (list)" style="text-align:center;"><text styleclass="Normal (list)" style="font-weight:bold;" translate="true">Supported</text></para>
        </td>
      </tr>
      <tr style="vertical-align:top">
        <td style="width:181px;">
          <para styleclass="Normal (list)"><text styleclass="Normal (list)" translate="true">WPF</text></para>
        </td>
        <td style="width:82px;">
          <para styleclass="Normal (list)" style="text-align:center;"><image src="notsupported.png" scale="100.00%" styleclass="Normal (list)"></image></para>
        </td>
      </tr>
      <tr style="vertical-align:top">
        <td style="width:181px;">
          <para styleclass="Normal (list)"><text styleclass="Normal (list)" translate="true">Silverlight 4</text></para>
        </td>
        <td style="width:82px;">
          <para styleclass="Normal (list)" style="text-align:center;"><image src="notsupported.png" scale="100.00%" styleclass="Normal (list)"></image></para>
        </td>
      </tr>
      <tr style="vertical-align:top">
        <td style="width:181px;">
          <para styleclass="Normal (list)"><text styleclass="Normal (list)" translate="true">Silverlight 5</text></para>
        </td>
        <td style="width:82px;">
          <para styleclass="Normal (list)" style="text-align:center;"><image src="notsupported.png" scale="100.00%" styleclass="Normal (list)"></image></para>
        </td>
      </tr>
      <tr style="vertical-align:top">
        <td style="width:181px;">
          <para styleclass="Normal (list)"><text styleclass="Normal (list)" translate="true">Windows Phone 7 Mango</text></para>
        </td>
        <td style="width:82px;">
          <para styleclass="Normal (list)" style="text-align:center;"><image src="supported.png" scale="100.00%" styleclass="Normal (list)"></image></para>
        </td>
      </tr>
      <tr style="vertical-align:top">
        <td style="width:181px;">
          <para styleclass="Normal (list)"><text styleclass="Normal (list)" translate="true">Windows Phone 8</text></para>
        </td>
        <td style="width:82px;">
          <para styleclass="Normal (list)" style="text-align:center;"><image src="notsupported.png" scale="100.00%" styleclass="Normal (list)"></image></para>
        </td>
      </tr>
      <tr style="vertical-align:top">
        <td style="width:181px;">
          <para styleclass="Normal (list)"><text styleclass="Normal (list)" translate="true">Windows RT</text></para>
        </td>
        <td style="width:82px;">
          <para styleclass="Normal (list)" style="text-align:center;"><image src="notsupported.png" scale="100.00%" styleclass="Normal (list)"></image></para>
        </td>
      </tr>
      <tr style="vertical-align:top">
        <td style="width:181px;">
          <para styleclass="Normal (list)"><text styleclass="Normal (list)" translate="true">Test/emulation service</text></para>
        </td>
        <td style="width:82px;">
          <para styleclass="Normal (list)" style="text-align:center;"><image src="supported.png" scale="100.00%" styleclass="Normal (list)"></image></para>
        </td>
      </tr>
    </table></para>
    <para styleclass="Normal"><text styleclass="Normal" translate="true">There is also an article available about this service: </text><link displaytype="text" defaultstyle="true" type="weblink" href="http://www.codeproject.com/KB/windows-phone-7/Catel_Part8.aspx" target="_blank" styleclass="Normal" translate="true">WP7 Mango and Unit Testing the Camera</link></para>
    <para styleclass="Heading1"><text styleclass="Heading1" translate="true">Starting and stopping the service</text></para>
    <para styleclass="Normal"><text styleclass="Normal" translate="true">The </text><link displaytype="text" defaultstyle="true" type="weblink" href="http://msdn.microsoft.com/en-us/library/microsoft.devices.photocamera(v=vs.92).aspx" target="_blank" styleclass="Normal" translate="true">PhotoCamera documentation</link><text styleclass="Normal" translate="true"> continuously states that the camera object must be created and disposed properly. In the service, this is encapsulated by the </text><link displaytype="text" defaultstyle="true" type="topiclink" href="M_Catel_MVVM_Services_ICameraService_Start" styleclass="Normal" translate="true">Start</link><text styleclass="Normal" translate="true"> and </text><link displaytype="text" defaultstyle="true" type="topiclink" href="M_Catel_MVVM_Services_ICameraService_Stop" styleclass="Normal" translate="true">Stop</link><text styleclass="Normal" translate="true"> methods. To start the service, use the code below:</text></para>
    <para styleclass="Code Example"><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">var cameraService = GetService&lt;ICameraService&gt;();</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">cameraService.CaptureThumbnailAvailable += OnCameraServiceCaptureThumbnailAvailable;</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">cameraService.CaptureImageAvailable += OnCameraServiceCaptureImageAvailable;</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">cameraService.Start();</text></para>
    <para styleclass="Normal"><text styleclass="Normal" translate="true">To stop the service, use the code below: (note: the </text><link displaytype="text" defaultstyle="true" type="topiclink" href="M_Catel_MVVM_ViewModelBase_Close" styleclass="Normal" translate="true">Close</link><text styleclass="Normal" translate="true"> method on a view model is feature of Catel):</text></para>
    <para styleclass="Code Example"><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#000080;" translate="true">protected</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">&#32;</text><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#000080;" translate="true">override</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">&#32;</text><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#000080;" translate="true">void</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true"> Close()</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">{</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true"> &#160; &#160;var cameraService = GetService&lt;ICameraService&gt;();</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true"> &#160; &#160;cameraService.Stop();</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true"> &#160; &#160;cameraService.CaptureThumbnailAvailable -= OnCameraServiceCaptureThumbnailAvailable;</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true"> &#160; &#160;cameraService.CaptureImageAvailable -= OnCameraServiceCaptureImageAvailable;</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">}</text></para>
    <para styleclass="Heading1"><text styleclass="Heading1" translate="true">Capturing images</text></para>
    <para styleclass="Normal"><text styleclass="Normal" translate="true">To capture images, several things must be done. The first action to accomplish is to subscribe to the </text><link displaytype="text" defaultstyle="true" type="topiclink" href="E_Catel_MVVM_Services_ICameraService_CaptureImageAvailable" styleclass="Normal" translate="true">ICameraService.CaptureImageAvailable</link><text styleclass="Normal" translate="true"> event. The next step is to invoke the </text><link displaytype="text" defaultstyle="true" type="topiclink" href="M_Catel_MVVM_Services_ICameraService_CaptureImage" styleclass="Normal" translate="true">CaptureImage</link><text styleclass="Normal" translate="true"> method like shown below:</text></para>
    <para styleclass="Code Example"><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">CameraService.CaptureImage();</text></para>
    <para styleclass="Normal"><text styleclass="Normal" translate="true">The last part is very important. You will need to read the image stream from the </text><link displaytype="text" defaultstyle="true" type="topiclink" href="E_Catel_MVVM_Services_ICameraService_CaptureImageAvailable" styleclass="Normal" translate="true">CaptureImageAvailable</link><text styleclass="Normal" translate="true"> event:</text></para>
    <para styleclass="Code Example"><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">BitmapImage</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#ffffff;" translate="true">&#32;</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">bitmap</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#ffffff;" translate="true">&#32;</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">=</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#ffffff;" translate="true">&#32;</text><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#000000;" translate="true">new</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#ffffff;" translate="true">&#32;</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">BitmapImage();</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">bitmap.SetSource(e.ImageStream);</text></para>
    <para styleclass="Heading1"><text styleclass="Heading1" translate="true">Showing a video of camera in a view</text></para>
    <para styleclass="Normal"><text styleclass="Normal" translate="true">To show a preview of the camera input on the phone, first subscribe to the </text><link displaytype="text" defaultstyle="true" type="topiclink" href="E_Catel_MVVM_Services_ICameraService_CaptureThumbnailAvailable" styleclass="Normal" translate="true">ICameraService.CaptureThumbnailImageAvailable</link><text styleclass="Normal" translate="true"> event. Next step is to create a property on the view model:</text></para>
    <para styleclass="Code Example"><text styleclass="Code Example" style="font-weight:normal; font-style:italic; color:#800000;" translate="true">/// &lt;summary&gt;</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:italic; color:#800000;" translate="true">/// Gets or sets the current photo.</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:italic; color:#800000;" translate="true">/// &lt;/summary&gt;</text><br/><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#000080;" translate="true">public</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true"> BitmapImage CurrentPhoto</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">{</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true"> &#160; &#160;get { </text><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#000080;" translate="true">return</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true"> GetValue&lt;BitmapImage&gt;(CurrentPhotoProperty); }</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true"> &#160; &#160;set { SetValue(CurrentPhotoProperty, value); }</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">}</text><br/><br/><text styleclass="Code Example" style="font-weight:normal; font-style:italic; color:#800000;" translate="true">/// &lt;summary&gt;</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:italic; color:#800000;" translate="true">/// Register the CurrentPhoto property so it is known in the class.</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:italic; color:#800000;" translate="true">/// &lt;/summary&gt;</text><br/><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#000080;" translate="true">public</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">&#32;</text><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#000080;" translate="true">static</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">&#32;</text><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#000080;" translate="true">readonly</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true"> PropertyData CurrentPhotoProperty = RegisterProperty(&quot;CurrentPhoto&quot;, </text><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#000080;" translate="true">typeof</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">(BitmapImage));</text></para>
    <para styleclass="Normal"><text styleclass="Normal" translate="true">This property definition is a Catel property, but if you prefer using a different MVVM framework or your own property definition style, you are free to do that as well.</text></para>
    <para styleclass="Normal"><text styleclass="Normal" translate="true">In the view, use the Image control to show the current photo:</text></para>
    <para styleclass="Code Example"><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#000000;" translate="true">&lt;</text><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#ff0000;" translate="true">Image</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">&#32;</text><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#000000;" translate="true">Grid.Row=</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#0080ff;" translate="true">&quot;0&quot;</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">&#32;</text><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#000000;" translate="true">Source=</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#0080ff;" translate="true">&quot;{Binding CurrentPhoto}&quot;</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">&#32;</text><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#000000;" translate="true">/&gt;</text></para>
    <para styleclass="Normal"><text styleclass="Normal" translate="true">Last but not least, we need to update the </text><text styleclass="Normal" style="font-style:italic;" translate="true">CurrentPhoto</text><text styleclass="Normal" translate="true"> property when a new thumbnail is available.</text></para>
    <para styleclass="Code Example"><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#000080;" translate="true">private</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">&#32;</text><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#000080;" translate="true">void</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true"> OnCameraServiceCaptureThumbnailAvailable(</text><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#000080;" translate="true">object</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true"> sender, ContentReadyEventArgs e)</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">{</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true"> &#160; &#160;BitmapImage bitmap = </text><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#000080;" translate="true">new</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true"> BitmapImage();</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true"> &#160; &#160;bitmap.SetSource(e.ImageStream);</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true"> &#160; &#160;CurrentPhoto = bitmap;</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">}</text></para>
    <para styleclass="Heading1"><text styleclass="Heading1" translate="true">Instantiating the test implementation</text></para>
    <para styleclass="Normal"><text styleclass="Normal" translate="true">The test implementation of the </text><link displaytype="text" defaultstyle="true" type="topiclink" href="T_Catel_MVVM_Services_ICameraService" styleclass="Normal" translate="true">ICameraService</link><text styleclass="Normal" translate="true"> needs to be instantiated with an image. The service will use this image to create an animation. The animation that will be applied is the image scrolling to the right pixel by pixel.</text></para>
    <para styleclass="Normal"><text styleclass="Normal" translate="true">To instantiate the test service, add an image to the Windows Phone 7 project and set its </text><text styleclass="Normal" style="font-style:italic;" translate="true">build action </text><text styleclass="Normal" translate="true">to </text><text styleclass="Normal" style="font-style:italic;" translate="true">Resource</text><text styleclass="Normal" translate="true">. Then instantiate the service like in the code below:</text></para>
    <para styleclass="Code Example"><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">var testImage = </text><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#000080;" translate="true">new</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true"> BitmapImage();</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">var streamResourceInfo = Application.GetResourceStream(</text><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#000080;" translate="true">new</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true"> Uri(&quot;/MyAssembly;component/Resources/Images/MyImage.png&quot;, UriKind.RelativeOrAbsolute));</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">testImage.CreateOptions = BitmapCreateOptions.None;</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">testImage.SetSource(streamResourceInfo.Stream);</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">_testCameraService = </text><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#000080;" translate="true">new</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true"> CameraService(testImage);</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">serviceLocator.RegisterInstance&lt;ICameraService&gt;(_testCameraService);</text></para>
    <para styleclass="Normal"><text styleclass="Normal" translate="true">By default, the </text><link displaytype="text" defaultstyle="true" type="topiclink" href="T_Catel_MVVM_Services_ICameraService" styleclass="Normal" translate="true">ICameraService</link><text styleclass="Normal" translate="true"> will generate a new thumbnail image every 50 milliseconds. It is possible to customize this with a constructor overload.</text></para>
    <para styleclass="Heading1"><text styleclass="Heading1" translate="true">Customizing camera settings for testing</text></para>
    <para styleclass="Normal"><text styleclass="Normal" translate="true">Sometimes it is required to test different resolutions. One way to do this is to buy all available Windows Phone 7 devices and test the software on all the cameras. An easier way is to use the </text><link displaytype="text" defaultstyle="true" type="topiclink" href="T_Catel_MVVM_Services_ICameraService" styleclass="Normal" translate="true">ICameraService</link><text styleclass="Normal" translate="true"> and customize the camera options to test how the application responds to the different settings.</text></para>
    <para styleclass="Normal"><text styleclass="Normal" translate="true">The settings are stored in the CameraServiceTestData class. This class allows customizing all the properties normally found on the </text><link displaytype="text" defaultstyle="true" type="weblink" href="http://msdn.microsoft.com/en-us/library/microsoft.devices.photocamera(v=vs.92).aspx" target="_blank" styleclass="Normal" translate="true">PhotoCamera</link><text styleclass="Normal" translate="true"> class. For example, to only allow the primary camera (because front facing cameras are not supported by all devices), use the following code:</text></para>
    <para styleclass="Code Example"><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">var cameraTestSettings = </text><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#000080;" translate="true">new</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true"> CameraServiceTestData();</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">cameraTestSettings.SupportedCameraTypes = CameraType.Primary;</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">cameraService.UpdateTestData(cameraTestSettings);</text></para>
    <para styleclass="Normal"><text styleclass="Normal" translate="true">It is also possible to change the thumbnail and final resolution of the images:</text></para>
    <para styleclass="Code Example"><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">var cameraTestSettings = </text><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#000080;" translate="true">new</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true"> CameraServiceTestData();</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">cameraTestSettings.PreviewResolution = </text><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#000080;" translate="true">new</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true"> Size(400, 800);</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">cameraTestSettings.Resolution = </text><text styleclass="Code Example" style="font-weight:bold; font-style:normal; color:#000080;" translate="true">new</text><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true"> Size(1200, 2400);</text><br/><text styleclass="Code Example" style="font-weight:normal; font-style:normal; color:#000000;" translate="true">cameraService.UpdateTestData(cameraTestSettings);</text></para>
  </body>
</topic>
